home *** CD-ROM | disk | FTP | other *** search
/ Mac OS 9 Serial Number Archive / SN Archive 2023.11.04.toast / TSNG / TSNG 1.1.0 / Read Me next >
Encoding:
Text File  |  1996-06-19  |  17.5 KB  |  335 lines  |  [TEXT/R*ch]

  1. The SN# Gen Read Me
  2. ===================
  3.  
  4. •••    PLEASE READ THE VERSION HISTORY FOR EACH NEW RELEASE TO STAY  •••
  5. •••       INFORMED OF IMPORTANT CHANGES AND SECURITY ISSUES       •••
  6.  
  7. As you should already know this app will generate (to a text file) serial/registration numbers (randomizing whenever possible) for various Macintosh software.
  8.  
  9. It should go without saying, but there always seems to be a few morons out there so said it must be:
  10.  
  11. ••• DO NOT USE OR DISTRIBUTE THIS APP IN NON-ELITE ENVIRONMENTS…  •••
  12. •••  DOING SO WILL ONLY RUIN IT FOR EVERYONE (THAT INCLUDES YOU)  •••
  13. •••  THE FIRST TIME I HEAR OF A LEAK OF THIS APP WILL BE THE LAST •••
  14. •••                   THINK ABOUT IT…ENOUGH SAID                  •••
  15. •••     (DO NOT GIVE THIS APP TO MORONS -- THANKS IN ADVANCE)     •••
  16.  
  17. I ask that you do not include numbers generated by this app (at least not in wholesale fashion) in other reference lists, since: A) This app generates different numbers (whenever possible) each time it is run so that there is no quick/painless counter measure to it; B) doing so would only help to counter its effectiveness (mainly by shortening the longevity of the SN# algorithms staying static); C) it would just increase the file size of the other lists while adding little value beyond the first number.
  18.  
  19. Future release versions will entirely supersede this release so there is _absolutely no need_ to keep old versions lying around.
  20.  
  21.  
  22. SECTIONS:
  23. ========
  24. Mission statement
  25. General/customization information
  26. Privacy/security warning
  27. Miscellania for would be CP reverse engineers
  28. List of supported products
  29. Version history
  30.  
  31.  
  32. MISSION STATEMENT:
  33. =================
  34. Copy protection (CP) is an annoying nuisance that is ineffective.  Serial number generators force software publishers to either: Accept the fact that their CP scheme is useless (possibly/hopefully abandoning it and the overhead of managing serial numbers) or; change their CP method/scheme and issue new serial numbers to their entire user-base for every release of their software.  In this way the easy counter-counter-measure (of simply just checking for known elite name/password combos with each new release) that some authors (eg: Realmz's author) currently take is eliminated (since they won't know what names/numbers to target).
  35.  
  36.  
  37. GENERAL/CUSTOMIZATION INFORMATION:
  38. =================================
  39. The date and time at which the output file was generated is now included at the start of the file -- this is the zero date that all the chronologically dependent algorithms use in their calculations.
  40.  
  41. The names specified for 'Owner Name' and 'Macintosh Name' in the 'Sharing Setup' control panel are now the first two user names used for generating serial numbers from.  However this info is not saved to the 'Generated SN#s' file for security reasons (see next paragraph) -- instead you will see '<Sharing Owner Name>' and '<Sharing Machine Name>'.  This change supports the few programs which require using the 'correct' user and/or machine name to fully enable themselves. (eg: the Dejal products)
  42.  
  43. Currently you must use a resource editor if you wish to change the user/company names (you may specify up to 20) that are used during generation.  You may also change the number of copies to be licensed for (simultaneous users 1…9999, default is 10) and the number of serial numbers to generate (1…50 [this is independent of the number of names you use], the default is 3) for each product.  These values are stored in 'STR#' resources that are labeled so that changing them is self explanatory.  A future release will probably get these from a separate text file in order to make customizing easier.
  44.  
  45. The generation of large tables is disabled by default, but you may enable it by changing the 'STR '#129 resource. The only large table implemented so far is for System's Twilight.
  46.  
  47. Ocassionally you will see output of the form:
  48.  
  49. Illegal name:    '<the illegal name>'
  50.  
  51. This only occurs when the given user name does not meet all the conditions placed upon it -- this is almost always due to the name being too short or containing only white space. (Don't be a moron -- using white space only, prefixed, or suffixed names is just dumb)
  52.  
  53. All of the serial number routines were tested with at least two numbers and usually more - however it is still possible that an error may have crept in, or a subtle point may have been missed during reverse engineering that only shows up some of the time --- so if you encounter an entry that doesn't work make sure you've got at least the given version of the product in question.  If it still won't work complain with the complete details and it will (probably) get fixed.
  54.  
  55. If you have new or better algorithms (in some cases there is sufficient ambiguity [not always intended!] in the checking algorithm to allow multiple solutions to the inversion problem, with complete generality being the nicest but hardest to obtain) for current (ie: non-legacy) products feel free to submit them and a few examples of _known valid_ codes. (most useful would be C code that actually compiles - but intelligible pseudo code will do)
  56.  
  57. Another item that would be useful is the actual _correct_ format of serial numbers for products which this app generates numbers for.  (in the case of a discrepancy only -- most of the time it is possibly to fully invert the checking algorithm and thus obtain the format of the serial number, but not always, in which case a reasonable/arbitrary _working_ guess is made)
  58.  
  59. If there is some _current_ product you wish to see included here that _requires_ (ie: is dependent upon user name and/or number of copies or needs unique network serial numbers) a generator feel free to request it. 
  60.  
  61.  
  62. PRIVACY/SECURITY WARNING:
  63. ========================
  64. You should be aware of the fact that just because custom names, such as the <Sharing Owner Name>, are not written to the file does not necessarily mean they are not recoverable… in some instances there is sufficient information encoded in the serial number to reveal all or most of the contents of the name.  Taken in combination this could almost certainly be used to reveal the hidden names.  Thus it is unwise to share a generated text file -- unless you first cut all lines containing closed angled brackets (<>).  In any case it is extremely unwise to put any non-anonymous information into any of the following places on your mac:the <Sharing Owner Name>, the <Sharing Machine Name>, volume/folder/file/printer/network device names, the map control panel (ie: don't take out your gps receiver and enter your house or towns exact location - use a large population center in your time zone instead), any Microsoft product, any net-aware product (this could be anything nowadays), any product that you produce (or change) documents with -- this is absolutely critical in these online/networked days…  Preferably you should only use a 'clean machine' to access the net -- that is a machine which is only connected to other (priviledged) machines when it is not online, and even then the connection must be one-way; to the clean machine only (that is the clean machine must not have any access priviledges to the accessing machine(s)).  If you feel you must put personal info into any of these places you should be aware that every time you share a document or even just log onto a network you are risking the (distinct) possibility of divulging that personal information without ever explicitly consenting to this invasion of privacy… this is an unwarrented and (usually) unecessary risk that most people are totally oblivious too -- no one will protect your privacy for you, the only way to be sure of having any measure of privacy is to simply not provide any unecessary information anywhere, period…  for "Those who are willing to trade (their) privacy for security deserve (and will get) neither" (can't remeber this quote's source but it's well known).  This issue is the real reason behind this app - its nobodies business what software we run or what we do with it or who we are unless we _directly and explicitly_ choose to give up such information on a per item/per usage basis.  After all if you go out and buy a television you don't want anyone to be able to find out what you do or don't watch or that you even have that television unless you explicitly tell them so. Why should software be any different?
  65.  
  66.  
  67. MISCELLANIA FOR WOULD BE CP REVERSE ENGINEERS:
  68. =============================================
  69. There a only a few basic non-keydisk, non-HW Dongle copy protection schemes in wide use:
  70.  
  71. 1)    Just a SN#/Reg Code (and possibly version#/id) that has certain
  72.     mathematical/string properties.
  73. 2)  A Name/ID (given or enterable) field, a copies_Licensed field, version#,
  74.     and SN#/Reg Code which is derived by manipulating and combining the Name/ID
  75.     field and the copies_Licensed.
  76. 3)    A time (date) based/limited SN#/Reg Code of type #1 or #2 above.
  77.  
  78. All of these protection schemes can in general be circumvented by a process of reverse engineering the SN# checking algorithm(s) during runtime (by using a debugger).  In general you try to get an interrupt at or near the beginning of the SN# checking code (this step can require some insight - but 95% of the time placing a local ATrap break on GetIText, StringToNum, NumToString, DisposeDialog, HiliteControl, and/or ModalDialog will work).  Once you find the start of the checking code you simply (or sometimes not so simply) symbolically disassemble the assembly code into pseudo or C code (I use a mixture myself).  Ninety percent of the time you will see some code which reads in all the user input fields (possibly upper or lower casing them), checks to see if they are within certain length and data type ranges (eg: Name>=4 chars with no digits, sn#=digits and >0).  After these preliminaries you get to the actual heart of the method used.  Typically you find code that does any/all of the following type of actions in various combinations:
  79.  
  80. A)    Copy/Splice field(s) or subfield(s) to/into new variable(s). (ie BlockMove)
  81. B)  Convert a string/character (not necessarily numeric) to a numeric variable
  82.     via StringToNum or a custom conversion routine (often the base involved is
  83.     not 10 but a prime or power of 2 such as 8,16, and 32). [or, inversely 
  84.     convert a number to a base b string]
  85. C)  Add/multiply/eor/ect... up the value of the characters in a string -
  86.     possibly including the length byte in the case of pascal strings.
  87. D)    Perform mathematical operations (often via library calls) such as integer
  88.     division (/), remainder upon integer division (mod,%), exclusive-oring
  89.     (xor,eor,^), oring (or,|), multiplication, addition, and subtraction. (note
  90.     be careful to observe the size and sign of the operations - ie byte, word,
  91.     long and signed or unsigned).
  92. E)    read/load in data from an internal table.  (one table of $100 longwords is
  93.     particularly popular)
  94. F)  do 1 of n manipulations as selected by the value/state of some data.
  95. G)    loop over all or some of the elements in a string/number and perform any
  96.     of these actions for each element.
  97.  
  98. The last step in the SN# checking code is almost always the direct comparison of two values (usually longwords, but sometimes character strings) -- although sometimes the comparison is distributed throughout the checking algorithm calculation itself. Sometimes one these values is simply just the numerical value of your SN#, but more often the slightly indirect method of mangling both your SN#/reg code and all other fields into character string or numeric values and then comparing them is used.  This second approach and generalizations upon it usually prove more difficult to invert in general -- as it requires reversing (at least partially inverting) a greater number of steps, often with more restrictions on intermediate values as opposed to restrictions on the terminal or input variables.
  99.  
  100.  
  101. LIST OF SUPPORTED PRODUCTS: (see the version history for version specifics)
  102. ==========================
  103. 4D Online Help
  104. Aladdin Desktop Tools
  105. Apeiron
  106. AXS Online Reader
  107. Barrack
  108. BeHierarchic
  109. BrainHex
  110. CalcWorks
  111. CD Directory
  112. CD Namer
  113. Chiral
  114. ColorSwitch
  115. Compact Pro
  116. Conflict Catcher
  117. Custom Menus
  118. Cyber Finder
  119. DeBabelizer
  120. Dejal QuickEncrypt
  121. Dejal SndCataloguer
  122. Dejal SndConverter Lite/Pro
  123. Dejal SndPlayer
  124. Dejal Text Utilities (TextConverter/TextMerge/TextSplitter)
  125. Developer VISE
  126. Developer VISE Lite
  127. DeskPicture
  128. DiskDup Pro
  129. DiskTools Collection
  130. DiskTracker
  131. Dome Wars
  132. DropStuff /w EE
  133. Eclipse
  134. Escape Velocity
  135. File Buddy
  136. FontBox
  137. Giza
  138. GraphicConverter
  139. Installer VISE
  140. Internet Memory
  141. MacSki
  142. Maelstrom
  143. MathType
  144. MultiClip Pro
  145. NetDoubler
  146. Nisus Writer
  147. Now Bundle
  148. Now Contact
  149. Now Quick&Easy
  150. Now UpToDate
  151. Now Utilities
  152. PacMac Deluxe
  153. PowerBar Pro
  154. PowerReplace
  155. Ram Disk Saver
  156. Realmz
  157. Realmz - Assault on Giant Mountain
  158. Realmz - Castle in the Clouds
  159. Realmz - Prelude to Pestilence
  160. ScrapIt Pro
  161. Sleeper
  162. Smaller Installer
  163. Snapz
  164. SoundEdit 16
  165. Stuffit Deluxe
  166. Stuffit InstallerMaker
  167. Swoop
  168. Systems Twilight
  169. TechTool Pro
  170. TheZone
  171. Ultima III
  172. UltraFind
  173. Updater VISE
  174. URL Manager
  175. Versatile Pro
  176. Virtual
  177.  
  178.  
  179. VERSION HISTORY:
  180. ===============
  181.  
  182. ?.?.? (DNE yet… this is a 'to do' list for me)
  183. -----
  184. include arbitrary length longint library and implement generator for LoanPro
  185. interface for user options such as copies.
  186.  
  187. 1.1.0 (Major security enhancements and internal restructuring, now in CW9)
  188. -----
  189. now generates and uses both 'Random Names' and 'Random Common Names' in order to further thwart any efficient/realistic name based countermeasures - please use these names or (preferably) your own list of custom names instead of the (fixed) standard names in order to (virtually) guarantee safe operation.  I have encountered several attempts to counter any/all of the standard names - some of these can be quite subtle and nasty, such as deleting/corrupting files or games cheating against you --- you have been warned… [please read the new section 'Privacy/Security Warning' above if you have not already done so]
  190.  
  191. New generators…
  192.  
  193. BeHierarchic 3.0.x (3.0.2) [anonymous (logic) contribution]
  194. BrainHex 1.0.x (1.0)
  195. CD Namer 2.0.x (2.0)
  196. DropStuff /w EE 4.0.x (4.0)
  197. FontBox 1.8.x (1.8.2) [minor bug (word mult instead of long mult) corrected]
  198. Installer VISE 4.0.x (4.0fc4) [CP & code checksumming implemented in VBL task]
  199. InstallerMaker 3.0.x (3.0)
  200. Internet Memory 1.5.x (1.5)
  201. NetDoubler 1.2.x (1.2)    [anonymous contribution]
  202. Now Bundle 3.6.x (3.6)
  203. Now Contact 3.6.x (3.6)
  204. Now UpToDate 3.6.x (3.6)
  205. PacMac Deluxe 1.0.x (1.0.2)
  206. Realmz 3.0.x (3.0.2) [name countermeasures - only uses random or custom names]
  207. Ultima III 1.x (1.3) [name countermeasures - only uses random or custom names]
  208. TheZone 1.x (1.4)
  209.  
  210. 1.0.9 (another incremental update that satisfies some requests)
  211. -----
  212. New generators…
  213.  
  214. Custom Menus 1.0.x (1.0)
  215. DeskPicture 4.0.x (4.0.2)
  216. Escape Velocity 1.0.x (1.0.1)
  217. Sleeper 2.0.x (2.0.3)
  218. Smaller Installer 2.0.x (2.0)
  219. Virtual 1.x.y (1.5.1)
  220.  
  221. 1.0.8 (large table generation made user configurable)
  222. -----
  223. added a switch for the generation of large tables ('STR '#129), thus;
  224. the "System's Twilight Passwords" file is no longer included.
  225. updated the supported products list to include the 1.0.7 additions… (whoops!)
  226.  
  227. New generators…
  228.  
  229. MacSki 1.6.x (1.6)
  230. Nisus Writer 4.1.x (4.1.3)
  231. PowerReplace 4.5.x (4.5.5)
  232.  
  233. 1.0.7 (another minor update with some tweaking)
  234. -----
  235. added finder icons and balloon help string.
  236. output TEXT file creator made user configurable. (change 'STR ' #128)
  237.  
  238. Added yet more generators still…
  239.  
  240. Conflict Catcher 3.x.x (3.0.4)
  241. MultiClip Pro 3.2 (3.2alpha)
  242. Ram Disk Saver 2.0.x (2.0)
  243. URL Manager 1.1.x (1.1.4)
  244.  
  245. 1.0.6 (added header time stamp and a few new generators)
  246. -----
  247. As a aid to maintenance I'm changing the format used to list new generators to include, in brackets, the latest version actually tested.
  248.  
  249. Added Generator for:
  250.  
  251. CalcWorks 1.5.x (1.5.1)
  252. CD Directory 1.0.x (1.0.2)
  253. FontBox 1.7.x (1.7.1)       [only 3 unique SN#'s are possible per day]
  254. SoundEdit 16 2.0.x (2.0)
  255.  
  256. 1.0.5 (in case you were wondering 1.0.4 only lasted a couple of hours…)
  257. -----
  258. Changed some of the default names to coincide with the names that BookWorm is using so that it is easier to (further) verify the code against (a greater number of) known valid serial numbers.
  259.  
  260. Added Generator for:
  261.  
  262. DiskTracker 1.0.x (1.0.2)
  263.  
  264. 1.0.4 (a few new generators plus major internal restructuring)
  265. -----
  266. Sharing Setup Owner/Machine names are now used as the first two user names.
  267. Reordered output so products are listed in _mostly_ alphabetical order.
  268.  
  269. Added Generators for:
  270.  
  271. Now Utilities 6.0 (6.0)
  272. Dejal QuickEncrypt 2.x (2.1)
  273. Dejal SndConverter Lite/Pro 2.x (2.3)
  274. Dejal SndCataloguer 2.x (2.3)
  275. Dejal SndPlayer 2.x (2.3)
  276. Dejal TextUtilities (TextConverter 1.x/TextMerge 2.x/TextSplitter 2.x)
  277.  
  278. 1.0.3 (now compiled with CodeWarrior 8 - the lmodu glue code bug is no more)
  279. -----
  280. Added Generators for:
  281.  
  282. 4D Online Help 3.0.x (3.0.5)
  283. Apeiron
  284. Barrack 1.0.x
  285. Chiral
  286. ColorSwitch 2.3.x (2.3.0)
  287. DiskDup Pro 1.0.3 (1.0.3)
  288. Eclipse 3.x.x
  289. File Buddy 3.x.x (3.4.3)
  290. Giza 2.x.x (2.0.0)
  291. Maelstrom
  292. MathType 3.x
  293. PowerBar Pro 2.5.x (2.5)
  294. Snapz
  295. Swoop
  296. TechTool Pro 1.0.x (1.0.1)
  297. UltraFind 2.x.x (2.2)
  298.  
  299. 1.0.2 (Initial release under the name 'The SN# Gen')
  300. -----
  301. Added Generators for:
  302.  
  303. AXS Online Reader 1.0.x
  304. Aladdin Desktop Tools 1.0.x (1.0.1)
  305. Compact Pro 1.5.x
  306. Cyber Finder 2.x
  307. DeBabelizer 1.6.x
  308. DiskTools Collection 3.x.y
  309. Dome Wars 1.0.x
  310. GraphicConverter 2.x.x (2.4.2)
  311. Now Bundle 3.5.x
  312. Now Contact 3.5.x
  313. Now Quick&Easy 1.0.x
  314. Now UpToDate 3.5.x
  315. Now Utilities 5.0.x (5.0.2)
  316. Realmz 2.x.x
  317. Realmz Assault on Giant Mountain
  318. Realmz Castle in the Clouds
  319. Realmz Prelude to Pestilence
  320. ScrapIt Pro 5.x.x
  321. Smaller Installer 1.1.x
  322. Stuffit Deluxe 3.5.x thru 4.0.x
  323. Stuffit InstallerMaker 2.0.x
  324. Systems Twilight 1.0.x Access Codes & Passwords
  325. Ultima III 1.x
  326. Versatile Pro 1.6.x
  327.  
  328. 1.0.1,1.0 (premature proof of concept releases)
  329. ---------
  330. Generators for:
  331.  
  332. Developer VISE 3.5
  333. Developer VISE Lite 3.5
  334. Updater VISE 1.0.1
  335.